/**
 * 给对象中的成员变量进行初始化
 * 1. 使用成员方法(使用前一定会先调用无参构造方法)
 * 2. 使用构造方法
 * 3. 调用本类当中的其他构造方法
 *
 * 对比后发现，构造方法更好用
 */
public class People {
    private String name;
    private int age;
    private String sex = "男";//就地初始化
    private String lover;

    /**
     * 1. 使用成员方法
     */
    public void setPeople1(String name,int age,String lover){
        this.name = name;
        this.age = age;
        this.lover = lover;
    }
    public void printPeople1() {
        System.out.println(this.age+"岁的"+this.name+"救赎了他的宝贝"+this.lover);
    }

    /**
     *  2. 使用构造方法
     */
    public People(String name,int age,String lover){
        this.name = name;
        this.age = age;
        this.lover = lover;
    }
    public void printPeople2(){
        System.out.println(this.age+"岁的"+this.name+"爱上了只属于他的"+this.lover);
    }

    /**
     *  3. 调用本类当中的其他构造方法进行初始化
     */
    public People(){
        this("陶然",29,"常宁");//this();调用本类中的其他构造方法
    }
    public void printPeople3(){
        System.out.println(this.age+"岁的"+this.name+"追上了它的女神"+this.lover);
    }

    public static void main(String[] args) {
        People people1 = new People();//调用无参构造方法
        people1.setPeople1("骆闻舟",29,"费渡");//重新初始化
        People people2 = new People("费渡",22,"骆闻舟");////调用有2个参数的构造方法
        People people3 = new People();//调用无参构造方法

        people1.printPeople1();
        people2.printPeople2();
        people3.printPeople3();
    }
}
